class Usuarios::PermissaoController < ApplicationController

  before_filter :verifica_paciente, :only => [:adicionar_permissao, :remover_permissao]
  before_filter :verifica_medico, :only => [:ativar_notificacao, :desativar_notificacao]

  def adicionar_permissao
    @medico = Usuarios::Medico.buscar_ativos(:id => params[:id]).first
    if @medico
      permissao = Usuarios::Permissao.where(:paciente_id => @paciente_logado.id, :medico_id => @medico.id).first
      if not permissao
        permissao = Usuarios::Permissao.new(:paciente => @paciente_logado, :medico => @medico)
        permissao.criar
      end
      Log.create(:login => @usuario_logado.login, :mensagem => t('usuarios/medico.add_permission_success') + " (#{@medico.login})")
      flash[:notice] = t('usuarios/medico.add_permission_success')
    else
      flash[:alert] = t('usuarios/medico.not_found')
    end
    redirect_to :controller => :medico, :action => :listar
  end

  def remover_permissao
    @medico = Usuarios::Medico.buscar_ativos(:id => params[:id]).first
    if @medico
      permissao = Usuarios::Permissao.where(:paciente_id => @paciente_logado.id, :medico_id => @medico.id).first
      if permissao
        permissao.remover
      end
      Log.create(:login => @usuario_logado.login, :mensagem => t('usuarios/medico.remove_permission_success') + " (#{@medico.login})")
      flash[:notice] = t('usuarios/medico.remove_permission_success')
    else
      flash[:alert] = t('usuarios/medico.not_found')
    end
    redirect_to :controller => :medico, :action => :listar
  end

  def ativar_notificacao
    @paciente = Usuarios::Paciente.buscar_ativos(:id => params[:id]).first
    if @paciente
      permissao = Usuarios::Permissao.where(:paciente_id => @paciente.id, :medico_id => @medico_logado.id).first
      if permissao
        permissao.atualizar(:notificar => true)
        flash[:notice] = t('usuarios/paciente.enable_notice_success')
      else
        flash[:alert] = t('usuarios/paciente.permission_not_found')
      end
    else
      flash[:alert] = t('usuarios/paciente.not_found')
    end
    redirect_to :controller => :paciente, :action => :listar
  end

  def desativar_notificacao
    @paciente = Usuarios::Paciente.buscar_ativos(:id => params[:id]).first
    if @paciente
      permissao = Usuarios::Permissao.where(:paciente_id => @paciente.id, :medico_id => @medico_logado.id).first
      if permissao
        permissao.atualizar(:notificar => false)
        flash[:notice] = t('usuarios/paciente.disable_notice_success')
      else
        flash[:alert] = t('usuarios/paciente.permission_not_found')
      end
    else
      flash[:alert] = t('usuarios/paciente.not_found')
    end
    redirect_to :controller => :paciente, :action => :listar
  end

end
